package com.ning.parking.service;

import com.ning.parking.domain.*;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ning.parking.domain.VO.BillingResult;
import com.ning.parking.domain.VO.BillingTimeVO;
import com.ning.parking.domain.VO.Pagination;
import com.ning.parking.domain.dto.ParkingRecordPageDto;
import com.scsonic.common.enums.parking.ParkingStatusEnum;

/**
 *
 */
public interface ParkingRecordService extends IService<ParkingRecord> {

    Pagination selectPage(ParkingRecordPageDto pageBase);

    /**
     *获取在场车记录
     * @param carLicense
     * @param parkingLotId
     * @return
     */
    ParkingRecord findInParkingParkingRecord(String carLicense,Long parkingLotId);

    void leave(ParkingRecord parkingRecord, ParkingStatusEnum parkingStatusEnum);

    ParkingRecord billing(ParkingRecord parkingRecord);
    BillingResult billing(Long parkingRecordId);

    BillingTimeVO getBillingTime(ParkingRecord record);

    BillingResult tempBilling(ParkingRecord record);

    ParkingRecord orderPay(ParkingRecord parkingRecord);

    ParkingRecord recordDetails(Long recordId);

    ParkingRecord payment(ParkingRecord parkingRecord);

    ParkingRecord getLastCar(Long drivewayId);

    ParkingRecord getRecordByCarlicese(String carLicense);

    void updateCarTypeInfo(ParkingLotMonthlyApply parkingLotMonthlyApply);

    void updateCarTypeInfo(ParkingLotWhitelist parkingLotBaseInfo);
    void updateCarTypeInfo(ParkingLotBlacklist parkingLotBlacklist);
}
